typedef double v1f64 __attribute__((__vector_size__(8)));

double f1(double x) {
  // CHECK:   var %t_5_9 f64 used oneelem_simd
  v1f64 t;
  // CHECK:   dassign %t_5_9 0 (intrinsicop f64 vector_set_element_v1f64 (dread f64 %x, dread f64 %t_5_9, constval i32 0))
  t[0] = x;
  // CHECK:   return (intrinsicop f64 vector_get_element_v1f64 (dread f64 %t_5_9, constval i32 0))
  return t[0];
}

typedef double v2f64 __attribute__((__vector_size__(16)));

double f2(double x) {
  v2f64 t;
  // CHECK:   dassign %t_15_9 0 (intrinsicop v2f64 vector_set_element_v2f64 (dread f64 %x, dread v2f64 %t_15_9, constval i32 0))
  t[0] = x;
  // CHECK:   return (intrinsicop f64 vector_get_element_v2f64 (dread v2f64 %t_15_9, constval i32 0))
  return t[0];
}

typedef float v2f32 __attribute__((__vector_size__(8)));

float f3(float x) {
  v2f32 t;
  // CHECK:   dassign %t_25_9 0 (intrinsicop v2f32 vector_set_element_v2f32 (dread f32 %x, dread v2f32 %t_25_9, constval i32 0))
  t[0] = x;
  // CHECK:   return (intrinsicop f32 vector_get_element_v2f32 (dread v2f32 %t_25_9, constval i32 0))
  return t[0];
}

typedef float v4f32 __attribute__((__vector_size__(16)));

float f4(float x) {
  v4f32 t;
  // CHECK:   dassign %t_35_9 0 (intrinsicop v4f32 vector_set_element_v4f32 (dread f32 %x, dread v4f32 %t_35_9, constval i32 0))
  t[0] = x;
  // CHECK:   return (intrinsicop f32 vector_get_element_v4f32 (dread v4f32 %t_35_9, constval i32 0))
  return t[0];
}

int main() {
    return 0;
}